/**
 * @author wn
 * @date 2023/03/02 11:35:22
 * @description: 自定义组件 按需导入 icon
 * 引入的icon必须为大写 DashboardOutlined
 */

import { createVNode } from 'vue'
import * as $Icon from '@ant-design/icons-vue'

// 组件使用时 调用函数 传的值 { k:v } 下面 k 解构出  指定 k=icon
export const Icon = props => {
	const { icon } = props
	return createVNode($Icon[icon])
}

/*
 <template>
 <div>
   <Icon :icon="icon" />
 </div>
</template>
<script>
import { defineComponent,ref } from 'vue'
import { Icon } from './icon.js'
export default defineComponent({
    components:{
        Icon
    },
    setup(){

        const icon = ref('DashboardOutlined');

        return {
          icon
        }
    }
})
</script>

*/

// h 函数

/*
<script>
import {h} from 'vue'
import * as $icon from '@ant-design/icons-vue';
import config from '@/config'

// 自动引入antd icon图标

export default {
  props:['icon'],
  setup(props){
    // 判断是icon还是antd的图标
    if(props.icon.indexOf('icon-') != -1){
      return ()=>h(
          'i',
          {
            class:"iconfont "+props.icon,
            style:{fontSize:"18px"}
          });
    }else{
      return ()=>h(
          $icon[props.icon],
          {
            style:{fontSize:"18px"}
          });
    }
  }
}
</script>


*/
